package org.example.domain.activity.service;

import org.example.domain.activity.model.entity.ActivityOrderEntity;
import org.example.domain.activity.model.entity.ActivityShopCartEntity;
import org.example.domain.activity.model.entity.SkuRechargeEntity;

/**
 * 抽奖活动订单接口
 */
public interface IRaffleOrder {
    /**
     * 以sku创建抽奖活动订单，获得参与抽奖资格(可消耗次数)
     *
     * @param  activityShopCartEntity 活动sku实体，通过sku领取活动
     * @return  ActivityOrderEntity 活动参与记录实体
     */
    ActivityOrderEntity createRaffleActivityOrder(ActivityShopCartEntity activityShopCartEntity);

    /**
     * 创建sku充值订单,给用户增加充值次数
     * 1.在【打卡、签到、分享、对话、积分兑换】等行为动作下，创建出活动订单，给用户的活动账户【日，月】充值可用的抽奖次数
     * 2.对于用户可获得的抽奖次数，比如首次进来就有一次，则是依赖于运营的配置动作，在前端界面上。用户点击后，可以获得一次抽奖次数
     *
     * @param  skuRechargeEntity 充值sku实体，通过sku充值活动账户可抽奖次数
     * @return  String 活动ID
     */
    String createSkuRechargeOrder(SkuRechargeEntity skuRechargeEntity);
}
